home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SuperHack
/
SuperHack CD.bin
/
CODING
/
CPP
/
WFC010.ZIP
/
INCLUDE
/
CRAS.HPP
< prev
next >
Wrap
C/C++ Source or Header
|
1995-12-07
|
8KB
|
243 lines
#ifndef REMOTE_ACCESS_SERVICE_CLASS_HEADER
/*
** Author: Samuel R. Blackburn
** CI$: 76300,326
** Internet: sammy@sed.csc.com
**
** You can use it any way you like as long as you don't try to sell it.
**
** Any attempt to sell WFC in source code form must have the permission
** of the original author. You can produce commercial executables with
** WFC but you can't sell WFC.
**
** Copyright, 1995, Samuel R. Blackburn
**
** $Workfile: $
** $Revision: $
** $Modtime: $
*/
#define REMOTE_ACCESS_SERVICE_CLASS_HEADER
#pragma warning ( disable : 4097 )
/*
** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
*/
typedef RASAMB _rasamb;
class CRemoteAccessServiceAuthenticationMessageBlock : public _rasamb
{
private:
void m_Initialize( void );
public:
CRemoteAccessServiceAuthenticationMessageBlock();
CRemoteAccessServiceAuthenticationMessageBlock( const RASAMB *source );
CRemoteAccessServiceAuthenticationMessageBlock( const CRemoteAccessServiceAuthenticationMessageBlock& source );
/*
** Destructor should be virtual according to MSJ article in Sept 1992
** "Do More with Less Code:..."
*/
virtual ~CRemoteAccessServiceAuthenticationMessageBlock();
void Copy( const RASAMB *source );
void Copy( const CRemoteAccessServiceAuthenticationMessageBlock& source );
BYTE GetLana( void ) const;
DWORD GetErrorCode( void ) const;
void GetErrorString( CString& return_string ) const;
};
/*
** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
*/
typedef RASPPPNBF _raspppnbf;
class CRemoteAccessServiceNetBEUIFramer : public _raspppnbf
{
private:
void m_Initialize( void );
public:
CRemoteAccessServiceNetBEUIFramer();
CRemoteAccessServiceNetBEUIFramer( const RASPPPNBF *source );
CRemoteAccessServiceNetBEUIFramer( const CRemoteAccessServiceNetBEUIFramer& source );
/*
** Destructor should be virtual according to MSJ article in Sept 1992
** "Do More with Less Code:..."
*/
virtual ~CRemoteAccessServiceNetBEUIFramer();
void Copy( const RASPPPNBF* source );
void Copy( const CRemoteAccessServiceNetBEUIFramer& source );
BYTE GetLana( void ) const;
DWORD GetErrorCode( void ) const;
DWORD GetNetBiosErrorCode( void ) const;
void GetErrorString( CString& return_string ) const;
void GetWorkstationName( CString& return_string ) const;
};
/*
** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
*/
typedef RASPPPIPX _raspppipx;
class CRemoteAccessServiceInternetworkPacketExchange : public _raspppipx
{
private:
void m_Initialize( void );
public:
CRemoteAccessServiceInternetworkPacketExchange();
CRemoteAccessServiceInternetworkPacketExchange( const RASPPPIPX * source );
CRemoteAccessServiceInternetworkPacketExchange( const CRemoteAccessServiceInternetworkPacketExchange& source );
/*
** Destructor should be virtual according to MSJ article in Sept 1992
** "Do More with Less Code:..."
*/
virtual ~CRemoteAccessServiceInternetworkPacketExchange();
void Copy( const RASPPPIPX * source );
void Copy( const CRemoteAccessServiceInternetworkPacketExchange& source );
DWORD GetErrorCode( void ) const;
void GetIPXAddress( CString& return_string ) const;
};
/*
** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
*/
typedef RASPPPIP _raspppip;
class CRemoteAccessServiceInternetProtocol : public _raspppip
{
private:
void m_Initialize( void );
public:
CRemoteAccessServiceInternetProtocol();
CRemoteAccessServiceInternetProtocol( const RASPPPIP * source );
CRemoteAccessServiceInternetProtocol( const CRemoteAccessServiceInternetProtocol& source );
/*
** Destructor should be virtual according to MSJ article in Sept 1992
** "Do More with Less Code:..."
*/
virtual ~CRemoteAccessServiceInternetProtocol();
void Copy( const RASPPPIP * source );
void Copy( const CRemoteAccessServiceInternetProtocol& source );
DWORD GetErrorCode( void ) const;
void GetIPAddress( CString& return_string ) const;
#if ! defined( WINNT35COMPATIBLE )
void GetServerIPAddress( CString& return_string ) const;
#endif // WINNT35COMPATIBLE
};
#pragma warning ( default : 4097 )
class CRemoteAccessService : public CObject
{
private:
void m_Initialize( void );
void m_GetConnectionsIntoMemory( LPRASCONN& return_value, DWORD& number_of_entries );
protected:
BOOL m_AutomaticallyClose;
LONG m_ErrorCode;
HRASCONN m_ConnectionHandle;
RASCONNSTATUS m_ConnectionStatus;
LPVOID m_ConnectionCallbackFunctionPointer;
RASDIALEXTENSIONS m_DialExtensions;
public:
enum Protocols
{
protocolAuthenticationMessageBlock = RASP_Amb,
protocolNetBEUIFramer = RASP_PppNbf,
protocolInternetworkPacketExchange = RASP_PppIpx,
protocolInternetProtocol = RASP_PppIp
};
enum DialOptions
{
dialUsePrefixAndSuffix = RDEOPT_UsePrefixSuffix,
dialAcceptPausedStates = RDEOPT_PausedStates,
dialIgnoreModemSpeaker = RDEOPT_IgnoreModemSpeaker,
dialSetModemSpeaker = RDEOPT_SetModemSpeaker,
dialIgnoreSoftwareCompression = RDEOPT_IgnoreSoftwareCompression,
dialSetSoftwareCompression = RDEOPT_SetSoftwareCompression
};
CRemoteAccessService();
CRemoteAccessService( DWORD input_buffer_size );
CRemoteAccessService( DWORD input_buffer_size, DWORD output_buffer_size );
/*
** Destructor should be virtual according to MSJ article in Sept 1992
** "Do More with Less Code:..."
*/
virtual ~CRemoteAccessService();
/*
** The Win32 API
*/
virtual BOOL Dial( LPCTSTR who_to_call ); // RasDial
virtual HRASCONN GetConnection( LPCTSTR name_of_connection );
virtual BOOL GetConnections( CStringArray& connections ); // RasEnumConnections
virtual BOOL GetConnectionStatus( void ); // RasGetConnectStatus
virtual BOOL GetErrorCode( void ) const;
virtual BOOL GetErrorString( CString& error_string ); // RasGetErrorString
virtual BOOL GetPhoneBookEntries( CStringArray& phone_book_entries );
virtual BOOL GetProtocolInformation( CRemoteAccessServiceAuthenticationMessageBlock& data_to_get );
virtual BOOL GetProtocolInformation( CRemoteAccessServiceNetBEUIFramer& data_to_get );
virtual BOOL GetProtocolInformation( CRemoteAccessServiceInternetworkPacketExchange& data_to_get );
virtual BOOL GetProtocolInformation( CRemoteAccessServiceInternetProtocol& data_to_get );
virtual BOOL HangUp( LPCTSTR name_of_connection = NULL );
virtual BOOL IsConnected( void );
virtual BOOL SetAutomaticallyClose( BOOL auto_close ); // Returns replaces setting
virtual LPVOID SetConnectionCallback( LPVOID RasDialFunc1_function_pointer );
virtual DWORD SetDialOptions( DWORD dial_options );
/*
** API's to make life a little easier
*/
virtual BOOL Open( LPCTSTR who_to_call ); // Dial()
virtual BOOL Close( LPCTSTR name_of_connection = NULL ); // HangUp();
};
#endif // REMOTE_ACCESS_SERVICE_CLASS_HEADER